package com.jqq.abstract_;

abstract public class Template {//抽象类型-模板设计模式
    public abstract void job();//抽象方法

    public void calculateTime(){
        //得到开始的时间
        long start = System.currentTimeMillis();
        job();//动态绑定机制
        //得到结束的时间
        long end = System.currentTimeMillis();
        System.out.println("执行时间" + (end-start));
    }

    public static void main(String[] args) {
        AA aa = new AA();
        aa.calculateTime();
        BB bb = new BB();
        bb.calculateTime();
    }
}
class AA extends Template{
    @Override
    public void job() {
        int num = 0;
        for (int i = 0; i < 800000; i++) {
            num += i;
        }
    }
}
class BB extends Template{
    @Override
    public void job() {
        int num = 1;
        for (int i = 0; i < 80000; i++) {
            num *= i;
        }
    }
}